package com.atguigu.phoenix;

import org.apache.phoenix.queryserver.client.ThinClientUtil;

import java.sql.*;

/**
 * Created by Smexy on 2022/8/17
 *
 *      瘦： 发送sql在客户端完成。
 *          启动服务，用户接收sql，解析后发到regionserver，返回结果到客户端
 *
 *          类似hs2
 *
 *      JDBC怎么玩?
 *          ①获取Connection
 *          ②准备sql，使用Connection预编译sql，获取PreparedStatement
 *          ③还可能会向预编译后的sql中添加占位符参数
 *          ④执行sql
 *          ⑤如果是查询，遍历返回值
 *
 *        mysql:  jdbc:mysql://
 *        hive:   jdbc:hive2://
 */
public class ThinClientDemo
{
    public static void main(String[] args) throws SQLException {


        // 1.把sql发给 服务，要写服务的主机名和端口号
        String url = ThinClientUtil.getConnectionUrl("hadoop103", 8765);

        // 2.获取连接
        Connection connection = DriverManager.getConnection(url);

        // 3.编译SQL语句
        PreparedStatement preparedStatement = connection.prepareStatement("select * from student4");

        // 4.执行语句
        ResultSet resultSet = preparedStatement.executeQuery();

        // 5.输出结果
        while (resultSet.next()){
            System.out.println(resultSet.getString(1) + ":" + resultSet.getString(2) + ":"
                + resultSet.getLong(3) +":" + resultSet.getString("ADDR"));
        }

        // 6.关闭资源
        connection.close();

    }
}
